﻿#include<iostream>
#include<algorithm>
#include<string>

using namespace std;


//
//Person(const char* name = "sk")
//:_name(name)
//{
//	cout << "Person()" << endl;
//}
//
//~Person()
//{
//	cout << "~Person()" << endl;
//}

//Person(const Person& p)
//: _name(p._name)
//{
//	cout << "Person(const Person& p)" << endl;
//}


//
//Student(const char* name, int num)
//:Person(name)
//, _num(num)
//{
//	cout << "Student()" << endl;
//}
//
//~Student()
//{
//	cout << "~Student()" << endl;
//}
//

//Student(const Student& s)
//:Person(s)
//, _num(s._num)
//{
//	cout << "Student(const Student& s)" << endl;
//}

class Person
{
public:
	Person& operator=(const Person& p)
	{
		cout << "Person& operator=(const Person& p)" << endl;
	}
protected:
	string _name;//姓名
};


class Student : public Person
{
public:
	Student& operator=(const Person& s)
	{
		cout << "Student& operator=(const Person& s)" << endl;
	}
protected:
	int _num;//学号
};

int main()
{

	return 0;
}
//class Person
//{
//protected:
//	string _name = "sk";//姓名
//	int _age = 9;//年龄
//	int _zj = 666;//身份证
//};
//
//
//class Student : public Person
//{
//public:
//	void printf()
//	{
//		cout << _name << endl;
//		cout << _age << endl;
//		cout << _zj << endl;//是身份证，还是学号？
//	}
//protected:
//	int _zj;//学号
//};
//
//
//void test()
//{
//	Student ok;
//
//	Person jk = ok;//派生类直接赋值给基类
//
//	Person* mk = &ok;//派生类指针，给基类
//
//	Person& nk = ok;//派生类引用，给基类
//
//	////////
//
//    Person* wk = &ok;//必须基类的指针指向派生类，不然不安全，比如
//	//Person gg = jk;
//	//Person* ss = &gg;
//	//Student* s2 = (Student*) ss;//可以转换
//	//s2->_Calss = 3;//但是，这里访问会越界
//
//	Student* pt = (Student*) wk;//基类的指针，可以强制类型转换赋值给派生类指针
//}
//int mian()
//{
//
//	return 0;
//}